package cn.topevery.garden.entity.po;

import cn.topevery.garden.entity.serializer.GeometrySerializer;
import cn.topevery.garden.framework.base.BaseEntity;
import com.alibaba.fastjson.annotation.JSONField;
import hw.topevery.framework.annotation.DbTable;
import hw.topevery.framework.annotation.DbTableField;
import hw.topevery.framework.dto.PointDto;
import hw.topevery.framework.enums.DbTypeEnum;
import lombok.Data;
import org.locationtech.jts.geom.Geometry;

import java.util.List;

/**
 * 描述 The type Extent.
 *
 * @author code -generate
 * @created 2021 -08-23 13:50:58
 * @date 2021 -08-06
 */
@Data
@DbTable(tableName = "t_extent")
public class Extent extends BaseEntity {
    /**
     * 公园id
     */
    @DbTableField(columnName = "c_entity_id", dbType = DbTypeEnum.VARCHAR)
    public String entityId;
    /**
     * 公园id
     */
    @DbTableField(columnName = "c_park_id", dbType = DbTypeEnum.INTEGER)
    public Integer parkId;

    /**
     * 公园简称
     */
    @DbTableField(columnName = "c_park_name", dbType = DbTypeEnum.VARCHAR)
    public String parkName;

    /**
     * 范围 bd09
     */
    @DbTableField(columnName = "c_geom_bd09", dbType = DbTypeEnum.OTHER)
    @JSONField(serializeUsing = GeometrySerializer.class)
    public Geometry geomBd09;

    /**
     * 范围  wgs84
     */
    @DbTableField(columnName = "c_geom_wgs", dbType = DbTypeEnum.OTHER)
    @JSONField(serializeUsing = GeometrySerializer.class)
    public Geometry geomWgs;

    /**
     * 范围 大地2000
     */
    @DbTableField(columnName = "c_geom_2000", dbType = DbTypeEnum.OTHER)
    @JSONField(serializeUsing = GeometrySerializer.class)
    public Geometry geom2000;

    /**
     * 范围  火星
     */
    @DbTableField(columnName = "c_geom_gcj02", dbType = DbTypeEnum.OTHER)
    @JSONField(serializeUsing = GeometrySerializer.class)
    public Geometry geomGcj02;

    /**
     * 范围 百度魔卡托平面
     */
    @DbTableField(columnName = "c_geom_mkt", dbType = DbTypeEnum.OTHER)
    @JSONField(serializeUsing = GeometrySerializer.class)
    public Geometry geomMkt;

    /**
     * 编号
     */
    @DbTableField(columnName = "c_code", dbType = DbTypeEnum.VARCHAR)
    public String code;

    /**
     * 名称
     */
    @DbTableField(columnName = "c_name", dbType = DbTypeEnum.VARCHAR)
    public String name;

    /**
     * 片区类型
     */
    @DbTableField(columnName = "c_type_id", dbType = DbTypeEnum.VARCHAR)
    public String typeId;

    /**
     * 片区类型名称
     */
    @DbTableField(columnName = "c_type_name", dbType = DbTypeEnum.VARCHAR)
    public String typeName;

    /**
     * 地址
     */
    @DbTableField(columnName = "c_address", dbType = DbTypeEnum.VARCHAR)
    public String address;

    /**
     * 面积
     */
    @DbTableField(columnName = "c_area", dbType = DbTypeEnum.VARCHAR)
    public String area;

    /**
     * 联系人Id
     */
    @DbTableField(columnName = "c_link_user_id", dbType = DbTypeEnum.INTEGER)
    public Integer linkUserId;

    /**
     * 联系人名称
     */
    @DbTableField(columnName = "c_link_user_name", dbType = DbTypeEnum.VARCHAR)
    public String linkUserName;

    /**
     * 联系人电话
     */
    @DbTableField(columnName = "c_link_phone", dbType = DbTypeEnum.VARCHAR)
    public String linkPhone;

    /**
     * 备注
     */
    @DbTableField(columnName = "c_remark", dbType = DbTypeEnum.VARCHAR)
    public String remark;

    public List<ExtentParts> partsList;

    public List<ExtentGroup> groupList;

    public List<List<PointDto>> mapRangesPoints;
}
